package com.ncu702.backend.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ncu702.backend.model.dto.articles.ArticleVo;
import com.ncu702.backend.model.entity.Article;
import com.ncu702.backend.model.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;

@Mapper
public interface ArticleMapper extends BaseMapper<Article> {


    /**
     * 根据文章id查询文章内容
     */
    ArticleVo getArticleById(String articleId);

    /**
     * home 请求与数据
     *
     * @return
     */

//    @Select("SELECT article.*,user.username,user.userAvatar" +
//            " FROM article" +
//            "LEFT JOIN user ON article.uid = user.uid" +
//            " WHERE artilce.status = 1" +
//            " ORDER BY a.create_time DESC" +
//            "limit #{pageNum}, #{pageSize}")
//    ArrayList<ArticleVo> getAllArticleHome(Integer pageNum,Integer pageSize);

    ArrayList<ArticleVo> getAllArticleHome();


    /**
     * 根据时间排序的首页文章
     *
     * @return
     */
    ArrayList<ArticleVo> getAllArticleHomeToTime();

    /**
     * 相应板块的全部文章 按热度排序
     *
     * @return
     */
    ArrayList<ArticleVo> getAllArticleBlock(Integer op);

    /**
     * 相应板块的全部文章 按发布时间排序
     *
     * @return
     */
    ArrayList<ArticleVo> getAllArticleBlockToTime(Integer op);


    /**
     * 精华的全部文章 按热度排序
     *
     * @return
     */
    ArrayList<ArticleVo> getAllArticleElite();

    /**
     * 精华的全部文章 按发布时间排序
     *
     * @return
     */
    ArrayList<ArticleVo> getAllArticleEliteToTime();

    /**
     * 发布文章
     */
    Integer addArticleByuid(Article article);

    /**
     * 增加阅读量
     */
    Integer updateReadCount(Integer readCount, String articleId);


    List<ArticleVo> getArticleByUid(long uid);
}
